package main

import (
	"bufio"
	"fmt"
	"io"
	"os"
	"time"

	"./Single_link"
)

// 用链表读取文件
func main() {

	ls := Single_link.NewSingleLinkList()

	t1 := time.Now() // 开始时间

	path1 := "D:\\golang\\day4\\猴岛游戏社区\\houdao\\1_1.txt"
	path2 := "D:\\golang\\day4\\猴岛游戏社区\\houdao\\1_2.txt"
	path3 := "D:\\golang\\day4\\猴岛游戏社区\\houdao\\1_3.txt"
	// path := "D:\\golang\\QQ.txt"
	/**


	qqfile, _ := os.Open(path) //打开文件
	defer qqfile.Close()       // 延迟关闭

	bf := bufio.NewReader(qqfile) // 读取数据
	i := 0

	for {
		line, _, err := bf.ReadLine() //读取一样文件

		if err == io.EOF { //读取到文件的最后一样
			break
		}

		linestr := string(line) //转化成字符串

		//	if strings.Contains(linestr, "297322358") { //搜索我的QQ好存在么
		//		fmt.Println(linestr)
		//	}


		node := Single_link.NewSingleLinkNode(linestr)
		ls.InsertNodeFront(node)
		i++

	}

	fmt.Println("读取数据条数:", i)
	*/

	readFile(path1, ls)
	readFile(path2, ls)
	readFile(path3, ls)
	fmt.Println("读取时间", time.Since(t1))

	for {
		fmt.Println("请输入要查询的数据")
		var inputstr string
		fmt.Scanln(&inputstr)

		starttime := time.Now() //时间开始

		ls.FindString(inputstr)

		fmt.Println("一共用了", time.Since(starttime))
	}

}

func readFile(path string, ls *Single_link.SingleLinkList) {

	qqfile, _ := os.Open(path) //打开文件
	defer qqfile.Close()       // 延迟关闭

	bf := bufio.NewReader(qqfile) // 读取数据
	i := 0

	for {
		line, _, err := bf.ReadLine() //读取一样文件

		if err == io.EOF { //读取到文件的最后一样
			break
		}

		linestr := string(line) //转化成字符串

		node := Single_link.NewSingleLinkNode(linestr)
		ls.InsertNodeFront(node)
		i++

	}

	fmt.Println("读取数据条数:", i)

}
